29 research outputs found

    Model clone detection in practice

    Full text link
    fortiss gGmb

    Tool support for continuous quality controlling

    Get PDF
    Over time, software systems suffer gradual quality decay and therefore costs can rise if organizations fail to take proactive countermeasures. Quality control is the first step to avoiding this cost trap. Continuous quality assessments help users identify quality problems early, when their removal is still inexpensive; they also aid decision making by providing an integrated view of a software system's current status. As a side effect, continuous and timely feedback helps developers and maintenance personnel improve their skills and thereby decreases the likelihood of future quality defects. To make regular quality control feasible, it must be highly automated, and assessment results must be presented in an aggregated manner to avoid overwhelming users with data. This article offers an overview of tools that aim to address these issues. The authors also discuss their own flexible, open-source toolkit, which supports the creation of dashboards for quality control

    Programs are knowledge bases

    No full text
    Gaining an overview of the concepts represented in large programs is very demanding as multiple dimensions of knowledge appear at different abstraction levels throughout the source code. To reduce the overall comprehension effort it is therefore desirable to make the knowledge once gained explicit and shareable. We tackle this problem by establishing a mapping between source code and conceptualizations shared as ontologies. To achieve this we regard programs themselves as knowledge bases built on the programs’ identifiers and their relations implied by the programming language. Making these mappings explicit allows sharing knowledge about the concepts represented in programs. We exemplify our approach on Java programming language and the WordNet ontology and we report o

    From Reality to Programs and (Not Quite) Back Again

    No full text
    Making explicit the mappings between real-world con-cepts and program elements that implement them is an es-sential step in understanding, using or evaluating the pub-lic interface of programs, libraries and other collections of classes that model core domain concepts. Unfortunately, due to the big abstraction gap between the modeled domain and today’s programming languages, the mapping is most of the times ambiguous as concepts and relations from the real world are distorted and diffused in the code. In this pa-per we present a comprehensive formal framework for de-scribing the many-to-many mappings between domain con-cepts and the program elements, real-world relations and program relations and the real-world concept names and program identifiers. This framework allows us to describe and discuss typical classes of diffusion of the domain knowl-edge in code. Based on our formal framework we describe an algorithm to recover the mappings between entities from an ontology and program elements. We illustrate the frame-work by using examples from the Java standard library. 1

    How Programs Represent Reality (and how they don’t)

    No full text
    Programming is modeling the reality. Most of the times, the mapping between source code and the real world concepts is captured implicitly in the names of identifiers. Making these mappings explicit enables us to regard programs from a conceptual perspective and thereby to detect semantic defects such as (logical) redundancies in the implementation of concepts and improper naming of program entities. We present real world examples of these problems found in the Java standard library and establish a formal framework that allows their concise classification. Based on this framework, we present our method for recovering the mappings between the code and the real world concepts expressed as ontologies. These explicit mappings enable semi-automatic identification of the discussed defect classes

    An integrated approach to quality modelling

    No full text
    Software quality is described by various views using different attributes and models. All these types of software quality have their own benefits and applications. However, the isolated solutions do not allow an integrated view on software quality. This renders a comprehensive analysis of software difficult and causes overlaps and inconsistencies in the models. Therefore, this paper proposes an integrated approach to quality modelling. The approach is based on the idea to use an explicit meta-model that provides the means to develop a base quality model. This base model contains the relevant relationships w.r.t. quality. Furthermore, so-called purpose models are derived by quantifying from this basis in order to aid specific tasks in quality management. The approach is illustrated with a proven example of a meta-model and derived quality model for maintainability
    corecore